﻿Public Class frmFirmaKurierska

    Private mvarChanged As Boolean = False
    Private mvarCancel As Boolean = False
    Private mvarFirma As clsFirmaKurierska
    Private mvarDbHolder As clsDataBase
    Private mvarWzynEdytowania As Boolean = False
    Private mvarBlokowanie As clsRecordLock
    Private mvarWyznBlokowania As Boolean = False
    Private mvarUzytkownik As clsUzytkownik

    Public Sub New(IdFirma As Integer)

        ' To wywołanie jest wymagane przez projektanta.
        InitializeComponent()

        ' Dodaj inicjację po wywołaniu funkcji InitializeComponent().
        mvarDbHolder = New clsDataBase(VAR_CONNECTION_PARAMETERS, VAR_ERROR_HANDLER)
        mvarUzytkownik = CType(clsUzytkownik.Instance(), clsUzytkownik)
        If IdFirma = 0 Then
            mvarFirma = New clsFirmaKurierska
            WyczyscInformacje()
            mvarChanged = False
        Else
            mvarFirma = New clsFirmaKurierska(IdFirma, mvarDbHolder, VAR_ERROR_HANDLER)
            Blokowanie()
            Me.Text = "WIREMET - EDYCJA FIRMY KURIERSKIEJ"
            UzupelnienieDanych()
            mvarWzynEdytowania = True
            mvarChanged = False
        End If

    End Sub

    Private Sub Blokowanie()

        mvarBlokowanie = New clsRecordLock(VAR_CONNECTION_PARAMETERS, mvarFirma.Id, "oem.waluta", VAR_ERROR_HANDLER, CInt(mvarUzytkownik.Id))
        mvarWyznBlokowania = True

        If Not mvarBlokowanie.RecordLocked Then
            MessageBox.Show("TYLKO DO ODCZYTU", "WIREMET")
            grbDane.Enabled = False
            cmdZapisz.Enabled = False
            cmdWyczysc.Enabled = False
        End If

    End Sub

    Private Sub Zapisz()

        If txtNazwa.Text.Length = 0 Then
            MessageBox.Show("Podaj nazwę.", "WIREMET")
            mvarCancel = True
        Else
            mvarDbHolder.BeginTrans()
            With mvarFirma
                .Id = mvarFirma.Id
                .Nazwa = txtNazwa.Text
                .Save(mvarDbHolder, VAR_ERROR_HANDLER)
            End With

            mvarDbHolder.CommitTrans()
            If mvarWzynEdytowania = False Then
                WyczyscInformacje()
                mvarFirma = New clsFirmaKurierska
            End If
            mvarChanged = False
            mvarCancel = False
            MessageBox.Show("Zapisano do bazy", "WIREMET")
            txtNazwa.Focus()
        End If

    End Sub

    Private Sub WyczyscInformacje()

        txtNazwa.Text = String.Empty

    End Sub

    Private Sub UzupelnienieDanych()

        txtNazwa.Text = mvarFirma.Nazwa

    End Sub


    Private Sub cmdZapisz_Click(sender As System.Object, e As System.EventArgs) Handles cmdZapisz.Click

        If mvarChanged Then
            Zapisz()
        Else
            MessageBox.Show("Nie wprowadzono żadnych zmian.", "WIREMET")
        End If

    End Sub

    Private Sub cmdAnuluj_Click(sender As System.Object, e As System.EventArgs) Handles cmdAnuluj.Click
        mvarChanged = False
        Close()
    End Sub

    Private Sub cmdWyczysc_Click(sender As System.Object, e As System.EventArgs) Handles cmdWyczysc.Click
        WyczyscInformacje()
    End Sub

#Region "Changed"

    Private Sub txtNazwa_TextChanged(sender As Object, e As System.EventArgs) Handles txtNazwa.TextChanged
        mvarChanged = True
    End Sub

#End Region

    Private Sub frmFirmaKurierska_FormClosed(sender As Object, e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        If mvarWyznBlokowania Then
            If mvarBlokowanie.RecordLocked Then
                mvarBlokowanie.Unlock()
            End If
        End If
        mvarDbHolder.Close()
    End Sub

    Private Sub frmFirmaKurierska_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        If mvarChanged Then
            Select Case MsgBox("Czy zapisać opakowanie do bazy?", MsgBoxStyle.YesNo, "WIREMET")
                Case MsgBoxResult.No
                Case MsgBoxResult.Yes
                    Zapisz()
                    If mvarCancel = True Then
                        e.Cancel = True
                    End If
            End Select
        End If
    End Sub












End Class